package com.ytjj.qmyx.mall.service;


import com.ytjj.common.model.UsersResponse;
import com.ytjj.qmyx.mall.model.dto.LiveRoomInfoDto;
import com.ytjj.qmyx.mall.model.request.PageRequest;
import com.ytjj.qmyx.mall.model.response.*;

import java.util.List;

/**
 * @Description: TODO
 */
public interface LiveService {

    /**
     * @Description 获取直播间列表
     *
     *
     *
     * @Version 1.0
     **/
    List<LiveRoomResponse> getLiveRoomList(PageRequest pageRequest);

    LiveInfoResponse getLiveInfo(Integer userId);


    /**
     * 生成直播间
     * @param currentUser
     */
    LiveInfoResponse createLiveRoom(UsersResponse currentUser);

    /**
     * 更新直播间
     *
     * @param currentUser
     */
    LiveInfoResponse updateLiveRoom(UsersResponse currentUser);


    /**
     * 获取直播间信息
     *
     * @param id
     * @return
     */
    LiveRoomInfoResponse getLiveRoomInfo(Integer id, UsersResponse currentUser);

    /**
     * 根据直播间id获取商品信息
     *
     * @param liveId 直播间id
     * @return
     */
    LiveAllProductResponse getLiveRoomProducts(Integer liveId, UsersResponse currentUser);

    /**
     * 获取正在讲解的商品
     *
     * @param id
     * @return
     */
    LiveProductResponse getExplainProduct(Integer id);

    /**
     * 获取正在直播的房间
     *
     * @return
     */
    LiveRoomResponse getLiveOn();

    /**
     * 关闭直播间
     * @param id
     */
    void closeLiveRoom(Integer id);

    /**
     * 获取直播间信息
     *
     * @param id
     * @param currentUser
     * @return
     */
    LiveRoomInfoDto getLiveRoomInfos(Integer id, UsersResponse currentUser);
}
